package cn.com.zaprk;

import cn.com.zaprk.utils.JDBCUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;

/**
 * JDBC登录案例
 */
public class JDBC_02_Login {
    public static void main(String[] args) {
        // 创建扫描器对象，用于获取用户输入的值
        Scanner scan = new Scanner(System.in);

        System.out.println("欢迎登录XXX网站！！！");
        System.out.println("请输入用户名：");
        String name = scan.nextLine();

        System.out.println("请输入密码：");
        String pass = scan.nextLine();

        // 根据用户提供的用户名和密码去数据库查找对应的用户信息， 有数据返回则登录成功，否则登录失败

        Connection conn = null;
        PreparedStatement stat = null;
        ResultSet res= null;
        try {
            // 获取连接对象
            conn = JDBCUtils.getConn();
            // 编写sql语句
            String sql = "select * from user where name=? and pwd=?";
            // 创建PreparedStatement
            stat = conn.prepareStatement(sql);

            System.out.println(sql);

            // 替换占位符
            stat.setString(1, name);
            stat.setString(2, pass);

            // 执行参数化 SQL 语句
            res = stat.executeQuery();

            // 判断是否有查询结果，有结果则登录成功，否则登录失败
            if(res.next()){
                System.out.println("恭喜你登录成功！！！");
            }else{
                System.err.println("登录失败！！！, 用户名或者密码错误");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            // 关闭连接
            JDBCUtils.close(res, stat, conn);
        }

    }
}
